package dome3;

/*

    向下转型：
    可以， 但是非常不安全！！！
 */



class Animal {

    public String name;
    public int age;


    public void eat() {
        System.out.println(name+" 正在吃饭！");
    }
}

class Dog extends Animal {

    public void wangwang() {
        System.out.println(name+" 正在汪汪叫！");
    }

    @Override   //判断是否构成重写
    public void eat() {  //重写              //2
        System.out.println(name+" 正在吃狗粮！");
    }
}

class Brid extends Animal {

    public int Wing;//翅膀

    public void fly() {
        System.out.println(name + " 正在飞！");
    }

    @Override    //判断是否构成重写
    public void eat() {  //重写
        System.out.println(name+" 正在吃鸟粮！");
    }
}


public class Test1 {
    public static void main(String[] args) {
        Animal animal = new Dog();
        Dog dog = (Dog)animal; // 向下引用
        dog.name = "haah";
        dog.wangwang();

        System.out.println("=====");

//        Brid brid = (Brid)animal; // err
//        brid.fly();

        if(animal instanceof Brid) { // 可以理解为判断animal这个引用是不是引用的Brid。是为trun 否则为false
            Brid brid = (Brid) animal;
            brid.fly();
        }
    }
}
